#include "Escritura.h"
#include <stdlib.h>
#include <stdio.h>
#include "ListaAlumno.h"
#include "Fiesta.h"
#include "ListaFiesta.h"

#define FIESTA "Fiesta.txt"
#define ALUMNO "Alumno.txt"
#define ESPECIALIDAD "Especialidad.txt"
#define ASISTENCIA "Asistencia.txt"

#define FACULTAD "Facultad.txt"
#define INTERES "_Interes.txt"
#define REPORTE "_Reporte.txt"

void escritura_archivoAlumno(ListaAlumno* L){
    FILE* archAlumno,*aux;
    char fecha[10];
    if (archAlumno = fopen(ALUMNO,"a")){
        NodoListaAlumno* i;
        for (i=L->fin_arch->sig; i != NULL;i = i->sig){
            aux = archAlumno;
            aCadena_Fecha(i->alumno->fecha_nac,fecha);
            fprintf(archAlumno, "%d %s %d %s\n",
                    i->alumno->codigo,
                    i->alumno->nombre,
                    i->alumno->espec->codigo,
                    fecha);
            L->fin_arch = L->fin_arch->sig;
        }    
        fclose(archAlumno);
    }   
}

void escritura_archivoFiesta(ListaFiesta* L){
    FILE* archFiesta,*aux;
    char fecha[10];    
    if (archFiesta = fopen(FIESTA,"a")){
        NodoListaFiesta* i;
        for (i=L->fin_arch->sig; i != NULL; i = i->sig){
            aux = archFiesta;
            aCadena_Fecha(i->fiesta->fecha,fecha);
            fprintf(archFiesta, "%03d %s %.02f %s\n",i->fiesta->codigo,i->fiesta->nombre,i->fiesta->costo,fecha);
            L->fin_arch = L->fin_arch->sig;
        }  
        fclose(archFiesta);
    }   
}

void escritura_archivoAsistencia(ListaFiesta* L){
    FILE* archAsistencia;
    if (archAsistencia = fopen(ASISTENCIA,"w")){
        NodoListaFiesta* i;
        NodoListaAlumno* j;
        for (i = L->ini; i != NULL; i = i->sig){
            ListaAlumno* A = i->fiesta->asistencia;
            for (j = A->ini; j != NULL; j = j->sig){
                fprintf(archAsistencia, "%d %d\n",
                    i->fiesta->codigo,
                    j->alumno->codigo);
            }
        }  
        fclose(archAsistencia);
    }   
}

void escritura_archivoInteres(ListaFiesta* L){
    FILE* archInteres;
    char nomArch[20];
    ColaAlumno *C;
    NodoListaFiesta* i;
    NodoColaAlumno* j;
    for (i=L->ini; i != NULL;i = i->sig){
        sprintf(nomArch,"%d",i->fiesta->codigo);
        strcat(nomArch,INTERES);
        C = i->fiesta->interes;
        if (archInteres = fopen(nomArch,"w")){
            for (j=C->ini; j!=NULL; j = j->sig){
                fprintf(archInteres,"%d\n",j->alumno->codigo);
            }
            fclose(archInteres);
        }
    }
}

void imprime(char *cad,int n){
    int i;
    n = n - strlen(cad);
    printf("%s",cad);
    for (i=0; i<n;i++){
        printf(" ");
    }
}

void Printf(char *strText) { 
    char ch; 
    int i,iLength; 
    iLength=strlen(strText); 

    for(i=0;i<iLength;i++){ 
        ch=strText[i]; 
        switch(ch){ 
            case 'á': 
                printf("\xA0"); 
                break; 
            case 'é': 
                printf("\x82"); 
                break; 
            case 'í': 
                printf("\xA1"); 
                break; 
            case 'ó': 
                printf("\xA2"); 
                break; 
            case 'ú': 
                printf("\xA3"); 
                break; 
            case 'ñ': 
                printf("%c",-92); 
                break; 
            case 'Ñ': 
                printf("%c",-91); 
                break; 
            case 'Á': 
                printf("%c",-75); 
                break; 
            case 'É': 
                printf("%c",-112); 
                break; 
            case 'Í': 
                printf("%c",-42); 
                break; 
            case 'Ó': 
                printf("%c",-32); 
                break; 
            case 'Ú': 
                printf("%c",-23); 
                break; 
            default: 
                printf("%c",ch); 
                break; 
        } 
    } 
} 


